<script type="text/javascript">
	function a(){
		function b(){
			var bbb = 234;
			document.write(aaa);//视觉效果上b被保存到了外部，在外部执行demo，在外部访问a里面的aaa好像是不行的，但是从结果上来看，是能访问，这个过程叫做闭包
		}

		var aaa = 123;
		return b;//a执行完之前把b保存到了外部;闭包抽象来说，但凡是内部的函数保存到了外部，一定生成闭包；内部的函数保存了外部的劳动成果，还没有被执行，内部的函数想删除自己的AO都删除不了
	}

	var glob = 100;
	var demo = a();//a执行的结果放到demo里了，b是demo；a执行完的结果是把b函数的引用扔到了外边，扔到了demo身上，demo接收了b之后，a执行完了；a执行完之后要销毁自己的aAo，aAo上的函数b也没有了，实际上b在外部还好好的，b在外部，demo的空间上存放了b的引用 
	demo();//执行b,第0位自己的AO上没有aaa，在第1位aAO上访问aaa
</script>

<script type="text/javascript">
	function a(){
		var num = 100;
		function b (){
			num ++;
			console.log(num)
		}
		return b;//b被抛到全局的范围内
	}
	var demo = a();
	demo();//执行访问num,产生新的bAO，找num从a的劳动成果里面找，找到aAO里的num给它+1；引用值引用的是地址，把b的引用扔给demo,demo和b指向同一房间，自此之后没有b就有demo，它俩一个人
	demo();
</script>

